Contact centers, such as automatic call distribution or ACD systems, are employed by many enterprises to serve customer contacts. A typical contact center includes a switch and/or server to receive and route incoming packet-switched and/or circuit-switched contacts and one or more resources, such as human agents and automated resources (e.g., interactive voice response (IVR) units), to service the incoming communications. Contact centers distribute contacts, whether inbound or outbound for servicing to any suitable resource according to predetermined criteria. In many existing systems, the criteria for servicing the contact from the moment that the contact center becomes aware of the contact and until the contact is connected to an agent or customer-specifiable (i.e., programmable by the operator of a contact center), via a capability called vectoring. In present-day ACDs, when the ACD system's controller detects that an agent has become available to handle a contact, the controller identifies all predefined contact-handling skills of the agent (usually in some order of priority) and delivers to the agent the highest-priority oldest contact that matches the agent's highest priority skill. Generally, the one condition that results in a contact not being delivered to an available agent is that there is no contact waiting to be handled.
Most contact-distribution algorithms focus on being “fair” to contactors and to agents. This fairness is reflected by the standard first-in, first-out, to most-idle-agent assignment algorithm. Skills-based routing improves upon this basic algorithm in that it allows each agent to be slotted into a number of agent groups based on the agent's skill type and level.
One objective of contact-distribution algorithms is to ultimately maximize contact center performance, profitability and to reduce hold time. This may involve minimizing cost, maximizing contact throughput and/or maximizing revenue, among other things. For example, when a new contact arrives, the contact should be handled by an agent who either has the ability to produce the most revenue or can handle the contact in the shortest amount of time. Also, when an agent becomes available to handle a new contact, the agent should handle the contact that has the possibility of generating the most revenue or the contact which the agent is most efficient in handling.
Currently, agent trends or patterns, if tracked at all, are tracked by the supervisor of the agent. The supervisor may manually assign agents to perform certain tasks based on their peak performance periods. This method of operation can have a number of drawbacks. For example, the supervisor has numerous tasks in a day and generally does not have time or energy to develop a complete understanding of each agent's performance trends and agent turnover rates can be high. It is often the case that the supervisor assigns an agent to perform a task that coincides with the agent's slow performance because of the incoming workload. The method does not balance current contact center needs with the agent performance trends, without the manual intervention of the supervisor.